package com.regulareport.form.mapper;

import com.regulareport.common.core.domain.entity.ReportFormsEdit;
import com.regulareport.form.domain.ReportFormsEditLocator;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 报版本管理Mapper接口
 * 
 * @author ruoyi
 * @date 2025-09-03
 */
public interface ReportFormsEditMapper 
{

    /**
     * 查询报版本管理
     * 
     * @param pkId 报版本管理主键
     * @return 报版本管理
     */
    public ReportFormsEdit selectReportFormsEditByPkId(Long pkId);

    /**
     * 查询报版本管理列表
     * 
     * @param reportFormsEdit 报版本管理
     * @return 报版本管理集合
     */
    public List<ReportFormsEdit> selectReportFormsEditList(ReportFormsEdit reportFormsEdit);

    /**
     * 新增报版本管理
     * 
     * @param reportFormsEdit 报版本管理
     * @return 结果
     */
    public int insertReportFormsEdit(ReportFormsEdit reportFormsEdit);

    /**
     * 修改报版本管理
     * 
     * @param reportFormsEdit 报版本管理
     * @return 结果
     */
    public int updateReportFormsEdit(ReportFormsEdit reportFormsEdit);

    /**
     * 删除报版本管理
     * 
     * @param pkId 报版本管理主键
     * @return 结果
     */
    public int deleteReportFormsEditByPkId(Long pkId);

    /**
     * 批量删除报版本管理
     * 
     * @param pkIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteReportFormsEditByPkIds(Long[] pkIds);

    /**
     * 查找最大版本号记录
     *
     * @return 结果
     */
    List<ReportFormsEdit> selectMaxReport();


    int updateSheetMap(@Param("list") List<ReportFormsEdit> reportFormsEdits);

    List<ReportFormsEdit> selectReportFormsEditByPkIds(@Param("list") List<Long> pkIds);

    List<ReportFormsEditLocator> selectMaxReportEnable();


    /** 更新模板启用状态 */
    int updateReportFormsEditState(ReportFormsEdit reportFormsEdit);

    /**
     * 查询报版本管理列表  ---  定时任务生成校验公式说明
     *
     * @param reportFormsEdit 报版本管理
     * @return 报版本管理集合
     */
    public List<ReportFormsEdit> selectRepFormsEditListForVerificationConfig(ReportFormsEdit reportFormsEdit);

    /**
     * 查询该报表最新版本
     *
     * @param reportFormNo 报表编号
     * @return 报表最新版本
     */
    public ReportFormsEdit selectReportFormsEditLatest(String reportFormNo);


}
